package cn.com.duiba.millionaire.center.biz.dao;

import cn.com.duiba.millionaire.center.biz.entity.MillionaireActivityEntity;

import java.util.List;

/**
 * Created by sty on 1/18/18.
 */
public interface MillionaireActivityDao {

    /**
     * 插入
     * @param millionaireActivityEntity
     * @return
     */
    MillionaireActivityEntity insert(MillionaireActivityEntity millionaireActivityEntity);

    /**
     * 更新
     * @param millionaireActivityEntity
     * @return
     */
    int updateById(MillionaireActivityEntity millionaireActivityEntity);

    /**
     * 根据id查询
     * @param id
     * @return
     */
    MillionaireActivityEntity findById(Long id);

    /**
     * 根据id批量查询
     * @param ids
     * @return
     */
    List<MillionaireActivityEntity> findByIds(List<Long> ids);

    /**
     * 查询所有的条数
     * @return
     */
    int findByPageCount();

    /**
     * 分页查询页面数据
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<MillionaireActivityEntity> findByPage(Integer pageNum, Integer pageSize);

    /**
     * 根据id更改状态
     * @param id
     * @param openStatus
     * @return
     */
    int updateStatusById(Long id, Integer openStatus);


    /**
     * 根据id删除
     * @param id
     * @return
     */
    int deleteById(Long id);

    /**
     * 修改活动是否使用过的状态(开过奖)
     * @param id
     * @param alreadyUsed
     * @return
     */
    int changeAlreadyUsed(Long id,Integer alreadyUsed);

    /**
     * 查询指定活动中已经被使用过的活动
     * @param ids
     * @return
     */
    List<Long> findIdsByAlreadyUseAndInId(List<Long> ids);

    /**
     * 根据类型和ids查询
     * @param ids
     * @param actType
     * @return
     */
    List<Long> findIdsByActTypeAndIdIn(List<Long> ids,Integer actType);

    /**
     * 根据活动类型查询可用的活动(1.未删除,2.未开过奖)
     *
     * @param actType
     * @return
     */
    List<Long> findActivityIdByActype(Integer actType);
}
